package com.woniuxy.lab.woniu_lab_boss.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.woniuxy.lab.woniu_lab_boss.controller.form.ModifyRangeForm;
import com.woniuxy.lab.woniu_lab_boss.controller.form.UploadRangeForm;
import com.woniuxy.lab.woniu_lab_boss.model.Range;
import com.baomidou.mybatisplus.extension.service.IService;
import com.woniuxy.lab.woniu_lab_boss.service.dto.RangeDto;

import java.util.List;

/**
 * <p>
 * 靶场表 服务类
 * </p>
 *
 * @author Silas
 * @since 2023-03-15
 */
public interface RangeService extends IService<Range> {

    IPage<RangeDto> queryRange(String condition, Integer page, Integer size);

    IPage<RangeDto> findAll(Integer page, Integer size);

    IPage<RangeDto> queryByType(String condition, Integer page, Integer size);

    IPage<RangeDto> queryByWay(String condition, Integer page, Integer size);

    /**
     * 查看我的靶场
     * @return List<RangeDto> 我的靶场集合
     * @param page
     * @param size
     */
    IPage<RangeDto> findMyRange(Integer page, Integer size);


    /**
     * 修改靶场信息
     * @param modifyRangeForm 修改靶场信息参数
     * @return RangeDto
     */
    RangeDto modifyRange(ModifyRangeForm modifyRangeForm);

    /**
     * 下架靶场
     * @param rangeId 靶场ID
     * @return RangeDto
     */
    void downRange(Integer rangeId);

    IPage<RangeDto> searchMyRange(Integer page, Integer size, String keyword);

    IPage<RangeDto> getRangeByType(Integer page, Integer size, String type);

    void uploadRange(UploadRangeForm form);

}
